package com.spsa.utilidades;

import java.io.File;
import java.util.Date;

import com.spsa.persistencia.entidades.DetalleInterfaz;
import com.spsa.persistencia.entidades.EstadoInterfaz;
import com.spsa.persistencia.entidades.Interfaz;

public class FactoryEstadoInterfaz1 {

	private Interfaz interfaz;
	private Date fecha;
	private int cantidadArchivos;
	private int maximoCorrelativo;
	
	public FactoryEstadoInterfaz1(Interfaz interfaz) {
		this.interfaz = interfaz;
		this.cantidadArchivos = 0;
		this.maximoCorrelativo = 0;
		this.fecha = UtilFechas.obtenerHoy();
	}

	public EstadoInterfaz obtenerEstadoInterfaz() {
		DetalleInterfaz detalleInterfaz = interfaz.getDetalle();

		String rutaCarpeta = detalleInterfaz.getRutaCarpeta();
		String patronNombre = detalleInterfaz.getPatronNombre();
		patronNombre = UtilBuscadorArchivos.reemplazarFechaEnNombre(patronNombre);

		File[] archivos = UtilArchivos.obtenerArchivos(rutaCarpeta);

		for (int i = 0; i < archivos.length; i++) {
			if(!archivos[i].isFile())
				continue;
			
			Date fechaUso = UtilFechas.obtenerFechaUso(archivos[i], interfaz.getHoraCreacion());

			if (fechaUso != null && archivos[i].getName().startsWith(patronNombre)) {
				fecha = fechaUso;
				cantidadArchivos = 1;
				maximoCorrelativo = 1;
				return crearEstadoInterfaz();
			}
		}
	
		return crearEstadoInterfaz();
	}
	
	private EstadoInterfaz crearEstadoInterfaz() {
		EstadoInterfaz estadoInterfaz = new EstadoInterfaz();
		estadoInterfaz.setCodigoTienda(Parametros.get("Datos.CODIGO_TIENDA"));
		estadoInterfaz.setDescripcionInterfaz(interfaz.getDescripcion());
		estadoInterfaz.setFecha(fecha);
		estadoInterfaz.setCantidadArchivos(cantidadArchivos);

		if (cantidadArchivos != maximoCorrelativo || maximoCorrelativo == 0)
			estadoInterfaz.setCondicion(1);
		else
			estadoInterfaz.setCondicion(2);

		return estadoInterfaz;
	}
	
}
